package com.cskaoyan.javase.oop2._1extend._7fieldhidden;

/**
 * @description: 静态成员变量的同名情况
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import java.util.Calendar;

/**
 * 1,静态成员变量父子类中可不可以同名?
 * 可以同名
 *
 * 2,如果同名,用子类类名访问,结果是什么?
 * 结果是子类的
 *
 * 静态成员变量在内存是被全体对象所共享的一片内存区域,不论子类父类都有自己独立的类加载
 *  ---> 都有自己独立的静态成员,即便同名也可以是一个巧合,没有任何关系,不谈隐藏或者覆盖
 *
 * 如果子类继承了父类的静态成员变量,而自身没有同名的,这是父子类同用了,共享了一个static成员变量
 *
 * 以上,静态成员变量最好不要考虑继承,在哪里定义的,就用谁的类名点访问,不要自找麻烦
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        System.out.println(Cat.age);
        Cat.age = 888;
        System.out.println(Animal.age);

        /*System.out.println(Cat.name);
        Cat.name = "李四";
        System.out.println(Animal.name);*/
    }
}
class Animal{
    static int age = 10;
    //static String name = "张三";
}
class Cat extends Animal{
    static int age = 20;
}
